﻿using Microsoft.EntityFrameworkCore;
using Zhaoxi.AgiletyFramework.DbModels;
using Zhaoxi.AgiletyFramework.DbModels.Models;

namespace Zhaoxi.AgiletyFramework.InitDatabase
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string connectionString = "Data Source=LAPTOP-KPPC1MJ9;Initial Catalog=Zhaoxi.AgiletyFramework.DB;Integrated Security=True;";
            // 确保在使用完毕后正确释放资源
            using (AgiletyDbContext context = new AgiletyDbContext(connectionString))
            {
                // 根据数据库连接字符串的配置删除数据库，如果不存在就不操作
                context.Database.EnsureDeleted();
                // 根据数据库连接字符串的配置创建数据库，如果存在就不操作
                context.Database.EnsureCreated();

                // 进行使用DbContext进行数据库操作
                // 新增用户
                //context.UserEntities.Add(new UserEntity
                //{
                //    Name = "王华凯",
                //    Password = "123456",
                //    UserType = 1,
                //    Phone = "19862824533"
                //});
                //// 提交所有变更
                //context.SaveChanges();

                // 查询用户
                // 根据主键查询
                //UserEntity user = context.UserEntities.Find(1);

                //Console.WriteLine(user);
                // 1. 查询所有用户
                List<UserEntity> allUsers = context.UserEntities.ToList();
                Console.WriteLine($"所有用户（共{allUsers.Count}条）：");
                foreach (var u in allUsers)
                {
                    Console.WriteLine(u); // 需要UserEntity有ToString()方法
                }

                // 2. 查询指定ID用户（示例查询ID=1的用户）
                int targetId = 1;
                UserEntity? user = context.UserEntities.Find(targetId);

                if (user != null)
                {
                    Console.WriteLine($"\n找到ID={targetId}的用户：");
                    Console.WriteLine(user);
                }
                else
                {
                    Console.WriteLine($"\n未找到ID={targetId}的用户");
                }

                // 3. 另一种查询单条记录的方式（使用FirstOrDefault）
                UserEntity? user2 = context.UserEntities
                    .FirstOrDefault(u => u.UserId == targetId);


            }
        }
    }
}
